Skip to content

chore(canary): retire the two Bun CSS minifier watches - #1506

Merged
oddharsh merged 1 commit into
mainfrom
claude/retire-bun-css-watches
Oct 30, 2026
Merged

oddharsh merged 1 commit into
mainfrom
claude/retire-bun-css-watches

Conversation

@oddharsh

Copy link
Copy Markdown
Owner

Retires two watches in tools/lib/upstream-watches.ts that can't land through the threads they name. Each entry becomes a dated RETIRED note, the same way #1293 did it.

I re-read both on 1.4.4-canary.1+5c6d4e2: 3 warnings, and :TARGET-CURRENT is still emitted verbatim. The site builds CSS with Lightning CSS (tools/build.ts:42), never with Bun.build, so neither watch stood for a need here.

Two more changes follow from the retirement:

  • The two rows come out of the watch table in docs/MAINTENANCE.md.
  • config/derivations.json drops the writer exemption for upstream-watches.ts. Those two probes were its only Bun.write calls, and the census test fails on a stale exemption.

Checks: check:fast is green (1624 pass, 0 fail) and derive:check is clean. 6 Bun watches remain, above the contract test's floor of 5.

Not done here: oven-sh/bun#42480 is still open upstream. Closing it is the owner's call.

css-minifier-knows-the-seven-pseudo-elements watched oven-sh/bun#41120,
closed 2026-10-19 after #41122 cleared four of the seven. The three left
are the ::scroll-marker family, which lightningcss 1.33.0 also warns on
(parcel-bundler/lightningcss#1321, open).

css-minifier-lowercases-target-current watched oven-sh/bun#42480. Its fix
#42484 closed unmerged on 2026-10-27, when #47025 consolidated the CSS
parser PRs and left #41139 out.

Both re-read false on 1.4.4-canary.1+5c6d4e2. The site builds CSS with
Lightning CSS directly, so neither stood for a need here. The writer
exemption for upstream-watches.ts goes with them, since those two probes
were its only Bun.write calls.
@github-actions

Copy link
Copy Markdown
Contributor

Wire-size diff vs merge base

9bfa772ed792bca02504e1631dfa9565073bfa8a → d0a35a0df33e98cc150eb81116f8dc195fe43987

Brotli q11, the quality the edge serves. Every number here is deterministic:
an unchanged file produces no row. Advisory — this check fails on nothing.

Client assets

No change. 39 files, 231.31 KiB Brotli total.

Pages

No change. 77 files, 702.62 KiB Brotli total.

Worker bundle

No change. 293.77 KiB gzip.

Dictionary transport

Family dictionary acquisition: no change, 14.50 KiB q11.

pd/: no change. 594 deltas, 511.81 KiB total.

@oddharsh
oddharsh merged commit b43a96f into main Oct 30, 2026
9 checks passed
@oddharsh
oddharsh deleted the claude/retire-bun-css-watches branch October 30, 2026 18:19
oddharsh added a commit that referenced this pull request Nov 1, 2026
… and plant the verdict watches' control

#1506 retired the two Bun CSS watches and deleted upstream-watches.ts's
writer exemption with them. The merge kept this branch's wording, which
still named those watches. The verdict watches are the file's only
writers now (Bun.write in the HTML probe, writeFileSync in three
others), so the exemption stays and says so.

With #1487 on main, the control owed since this PR opened goes in:
verdict-watch-forgets-its-memory-file drops the memory file from
`landed` and expects the contract test to say a moved row's issue no
longer names bun-minifier-not-a-swap.md. CAUGHT in 0.5s.
oddharsh added a commit that referenced this pull request Nov 2, 2026
#1494)

* feat(watches): read the premises of four declined verdicts every night

A "measured, not worth it" verdict is true on the day it's written, and
nothing reopens it when bun moves. VERDICT_WATCHES in
tools/lib/upstream-watches.ts points the upstream-watch probe at this
repo's own declines: each entry probes the premise a decline rests on,
reads false while it holds, and names the memory file that records it.

Four premises, all moving with bun, so the canary sees a flip first:

- bun's JS minifier trails oxc on the frozen parity fixtures (+84 B)
- bun's CSS ignores browser targets on luna.css (+2697 B brotli, bun#40368)
- bun's HTML "minify" keeps every comment and grows the page
- bun check's esnext lib lacks Math.sumPrecise, Iterator.concat, JSON.rawJSON

canary-bun.ts runs them beside BUN_WATCHES. The memory file rides in
each row's `landed`, so a moved row's issue line says which verdict to
re-measure; a contract test renders a moved row and asserts it does.

* fix(watches): drop the retired CSS watches from the writer exemption, and plant the verdict watches' control

#1506 retired the two Bun CSS watches and deleted upstream-watches.ts's
writer exemption with them. The merge kept this branch's wording, which
still named those watches. The verdict watches are the file's only
writers now (Bun.write in the HTML probe, writeFileSync in three
others), so the exemption stays and says so.

With #1487 on main, the control owed since this PR opened goes in:
verdict-watch-forgets-its-memory-file drops the memory file from
`landed` and expects the contract test to say a moved row's issue no
longer names bun-minifier-not-a-swap.md. CAUGHT in 0.5s.

---------

Co-authored-by: Aadharsh Pannirselvam <19518661+oddharsh@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant